Don't show page if first column doesn't fit
authorjustbur <justin@burkett.cc>
Mon, 20 Jul 2015 18:12:09 +0000 (14:12 -0400)
committerjustbur <justin@burkett.cc>
Mon, 20 Jul 2015 18:12:09 +0000 (14:12 -0400)
which-key.el

index 972069a36b6d5b4ce659f30ab49b77cbc7fcc21e..c9b7aacdbaa60ec192637c99a2418b57e93a08e7 100644 (file)
@@ -844,26 +844,29 @@ element in each list element of KEYS."
                                (-partition-all avl-lines keys)))
         (page-width 0) (n-pages 0)
         page-cols pages keys/page page-widths)
-    (dolist (col cols-w-widths)
-      (if (<= (+ (car col) page-width) avl-width)
-          (progn (push (cdr col) page-cols)
-                 (setq page-width (+ page-width (car col))))
-        (when (> (length page-cols) 0)
-          (push (which-key--join-columns page-cols) pages)
-          (push (* (length page-cols) avl-lines) keys/page)
-          (push page-width page-widths)
-          (setq n-pages (1+ n-pages)
-                page-cols (list (cdr col))
-                page-width (car col)))))
-    (when (> (length page-cols) 0)
-      (push (which-key--join-columns page-cols) pages)
-      (push (* (length page-cols) avl-lines) keys/page)
-      (push page-width page-widths)
-      (setq n-pages (1+ n-pages)))
-    (list :pages (reverse pages) :page-height avl-lines
-          :page-widths (reverse page-widths)
-          :keys/page (reverse keys/page) :n-pages n-pages
-          :tot-keys (cl-reduce '+ keys/page :initial-value 0))))
+    (if (> (car (car cols-w-widths)) avl-width)
+        (list :pages nil :page-height 0 :page-widths '(0)
+              :keys/page '(0) :n-pages 0 :tot-keys 0)
+        (dolist (col cols-w-widths)
+          (if (<= (+ (car col) page-width) avl-width)
+              (progn (push (cdr col) page-cols)
+                     (setq page-width (+ page-width (car col))))
+            (when (> (length page-cols) 0)
+              (push (which-key--join-columns page-cols) pages)
+              (push (* (length page-cols) avl-lines) keys/page)
+              (push page-width page-widths)
+              (setq n-pages (1+ n-pages)
+                    page-cols (list (cdr col))
+                    page-width (car col)))))
+      (when (> (length page-cols) 0)
+        (push (which-key--join-columns page-cols) pages)
+        (push (* (length page-cols) avl-lines) keys/page)
+        (push page-width page-widths)
+        (setq n-pages (1+ n-pages)))
+      (list :pages (reverse pages) :page-height avl-lines
+            :page-widths (reverse page-widths)
+            :keys/page (reverse keys/page) :n-pages n-pages
+            :tot-keys (cl-reduce '+ keys/page :initial-value 0)))))
 
 (defun which-key--create-pages (prefix-keys keys sel-win-width)
   (let* ((max-dims (which-key--popup-max-dimensions sel-win-width))